"""
匹配字符串的一种语法（只能匹配字符串）
制定一种规则：
    从给定的字符串中获取数据
python使用正则表达式：re
        match()：从开头匹配一个字符，如果匹配失败返回None，成功则返回match对象
        search()：从整个string匹配一个字符，如果匹配失败返回None，成功则返回match对象
        findall()：从整个string匹配所有满足条件的字符，如果匹配失败返回空列表，成功则返回列表
        共同的参数：
            pattern：正则表达式（规则），字符串类型
            string：待匹配的内容，字符串
            flags=0：默认参数（可以省略），用于特殊情形
"""
import re
#region匹配单个字符
# ‘ .’
#  print((re.match('.','hello word')).group())
# print((re.match('.','\nhello word')))
# print(re.findall('\d','hel3lo w5ord'))
#endregion
#region 想从用户输入的名字匹配，‘张*三’
# print(re.search('张.三','张\n三',flags=re.S).group())
#endregion
#region
#endregion
#region匹配多个字符
# ? 限制匹配一次 一次一个数字
# res = re.findall('\d?','123456')
# print(res)
# * 不限次匹配多少个数字
# res = re.findall('\d*','123 456')
# print(res)
# + 至少匹配出一个数字 匹配到空不输出
# res = re.findall('\d+','12r3 456')
# print(res)
#4 {n} 匹配一个手机号
# res = re.findall('1[3-9]\d{9}','139000000111111')
# print(res)
#endregion
#6贪婪和非贪婪
res1 = re.findall('\d+', '12365632')#贪婪模式：尽可能多的获取
res2 = re.findall( '\d+? ',' 12345632')#非贪婪模式：尽可能少的获取
print(res1)
print(' =====================')
print(res2)

